﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CAD.DAL;
using CAD.DAL.pagoVentaDSTableAdapters;
using CAD.DTO;

namespace CAD.BLL
{
    public class pagosVentaBLL
    {
        private static pagoVenta rowToDto(pagoVentaDS.venta_SelectByIdRow row)
        {
            pagoVenta objCliente = new pagoVenta();
            objCliente.Estado = row.estado;
            objCliente.Fechapago = row.fechapago;
            objCliente.Fecharegistro = row.fecharegistro;
            objCliente.Id = row.id;
            objCliente.IDventa = row.idventa;
            objCliente.Idcuentacaja = row.idcuentacaja;
            objCliente.Idregistrador = row.idregistrador;
            objCliente.Idvendendor = row.idvendedor;
            objCliente.Monto = row.monto;
            objCliente.Nrorecibo = row.nrorecibo;
            objCliente.Tipopago = row.tipopago;
            return objCliente;
        }
        public static List<pagoVenta> SelectByVenta(int id)
        {
            venta_SelectByIdTableAdapter adapter = new venta_SelectByIdTableAdapter();
            pagoVentaDS.venta_SelectByIdDataTable dtCliente = adapter.SelectByVenta(id);
            List<pagoVenta> LISTAobjCliente = new List<pagoVenta>();
            foreach (pagoVentaDS.venta_SelectByIdRow row in dtCliente)
            {
                pagoVenta objCliente = rowToDto(row);
                LISTAobjCliente.Add(objCliente);
            }
            return LISTAobjCliente;
        }
        public static DTO.pagoVenta SelectByID(int id)
        {
            venta_SelectByIdTableAdapter adapter = new venta_SelectByIdTableAdapter();
            pagoVentaDS.venta_SelectByIdDataTable dtCliente = adapter.SelectById(id);
            DTO.pagoVenta objCliente;
            try
            {
                objCliente = rowToDto(dtCliente[0]);
            }
            catch (Exception)
            {
                objCliente = null;
            }
            return objCliente;
        }
        public static int insertar(int idventa, int idvendedor, int idregistrador, string tipopago, int idcuentacaja, string nrorecibo, double monto, DateTime fechapago, DateTime fecharegistro, string gloza)
        {
            int? estudianteId = 0;
            venta_SelectByIdTableAdapter adapter = new venta_SelectByIdTableAdapter();
            adapter.insert(ref estudianteId, idventa, idvendedor, idregistrador, tipopago, idcuentacaja, fechapago, fecharegistro, monto, nrorecibo, true, gloza);
            int id = (int)estudianteId;
            return id;
        }
        public static void anular(int id)
        {
            venta_SelectByIdTableAdapter adapter = new venta_SelectByIdTableAdapter();
            adapter.anular(id,false);
        }
        public static double montoPagosPorVenta(int idventa)
        {
            double monto = 0;
            venta_SelectByIdTableAdapter adapter = new venta_SelectByIdTableAdapter();
            //  monto = (double)adapter.montoPagosPorCompra(idcompra);
            try
            {
                monto = (double)adapter.montoPagosPorVenta(idventa);
            }
            catch (Exception ex)
            {
            }
            return monto;
        }
    }
}
